/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package redclient.Items;

import java.util.Date;
import java.util.List;
import redclient.RedmineCredentials;

/**
 *
 * @author Isaias
 */
public class Project implements Populateable
{
    
    private RedmineCredentials credentials;

    private String projectId;
    
    private String name;
    
    private String identifier;
    
    private String description;
    
    private Date createdDate;
    
    private Date updatedDate;

    private List<Issue> issues;

    /**
     * @return the projectId
     */
    public String getProjectId() {
        return projectId;
    }

    /**
     * @param projectId the projectId to set
     */
    public void setProjectId(String projectId) {
        this.projectId = projectId;
    }

    /**
     * @return the name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return the identifier
     */
    public String getIdentifier() {
        return identifier;
    }

    /**
     * @param identifier the identifier to set
     */
    public void setIdentifier(String identifier) {
        this.identifier = identifier;
    }

    /**
     * @return the description
     */
    public String getDescription() {
        return description;
    }

    /**
     * @param description the description to set
     */
    public void setDescription(String description) {
        this.description = description;
    }

    /**
     * @return the createdDate
     */
    public Date getCreatedDate() {
        return createdDate;
    }

    /**
     * @param createdDate the createdDate to set
     */
    public void setCreatedDate(Date createdDate) {
        this.createdDate = createdDate;
    }

    /**
     * @return the updatedDate
     */
    public Date getUpdatedDate() {
        return updatedDate;
    }

    /**
     * @param updatedDate the updatedDate to set
     */
    public void setUpdatedDate(Date updatedDate) {
        this.updatedDate = updatedDate;
    }

    /**
     * @return the issues
     */
    public List<Issue> getIssues() {
        return issues;
    }

    /**
     * @param issues the issues to set
     */
    public void setIssues(List<Issue> issues) {
        this.issues = issues;
    }

    /**
     * @return the credentials
     */
    public RedmineCredentials getCredentials() {
        return credentials;
    }

    /**
     * @param credentials the credentials to set
     */
    public void setCredentials(RedmineCredentials credentials) {
        this.credentials = credentials;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Project other = (Project) obj;
        if (this.credentials != other.credentials && (this.credentials == null || !this.credentials.equals(other.credentials))) {
            return false;
        }
        if ((this.projectId == null) ? (other.projectId != null) : !this.projectId.equals(other.projectId)) {
            return false;
        }
        return true;
    }
}
